FOAModel({
  name: 'AllViews',

  properties: [
    {
      name: 'defaultEverything'
    },
    {
      name: 'clickToEnableEdit',
      defaultValue: 'click to enable edit',
      view: {
        model_: 'TextFieldView',
        className: 'clickToEnableEdit'
      }
    },
    {
      model_: 'StringProperty',
      name: 'stringProperty'
    },
    {
      model_: 'StringProperty',
      name: 'stringWithWidth',
      displayWidth: 60
    },
    {
      model_: 'StringProperty',
      name: 'stringWithWidthAndHeight',
      displayWidth: 40,
      displayHeight: 5
    },
    {
      model_: 'StringProperty',
      name: 'readOnlyStaticHTML',
      mode: 'read-only',
      defaultValue: '<font color=red><b>BOO!</b></font>'
    },
    {
      model_: 'BooleanProperty',
      name: 'booleanProperty'
    },
    {
      model_: 'BooleanProperty',
      name: 'imageBooleanProperty',
      view: ImageBooleanView.create({
               trueImage: '', //'images/star_on.gif',
               falseImage: '' //'images/star_off.gif'
             })
    },
    {
      model_: 'DateProperty',
      name: 'dateProperty'
    },
    {
      model_: 'DateTimeProperty',
      name: 'dateTimeProperty'
    },
    {
      model_: 'DateTimeProperty',
      name: 'relativeDateTimeProperty',
      view: 'RelativeDateTimeFieldView',
      defaultValue: new Date(Date.now()-123456)
    },
    {
      model_: 'IntegerProperty',
      name: 'integerProperty',
      defaultValue: 42
    },
    {
      model_: 'FunctionProperty',
      name: 'functionProperty',
      defaultValue: function() { console.log('boo!'); }
    },
<!--
    {
      model_: 'ReferenceProperty',
      name: 'referenceProperty',
      subType: 'Model'
    },
-->
    {
      model_: 'StringArrayProperty',
      name: 'stringArrayProperty',
      defaultValue: ["value1", "value2", "value3"]
    },
    {
      model_: 'EMailProperty',
      name: 'emailProperty'
    },
    {
      model_: 'URLProperty',
      name: 'urlProperty'
    },
    {
      name: 'choiceView',
      view: {
        model_: 'ChoiceView',
        helpText: 'Help Text',
        choices: [
          [ 'value1', 'Label 1' ],
          [ 'value2', 'Label 2' ],
           [ 'value3', 'Label 3' ]
        ]
      }
    },
    {
      name: 'choiceListView',
      defaultValue: 'value2',
      view: ChoiceListView.create({
        choices: [
          [ 'value1', 'Label 1' ],
          [ 'value2', 'Label 2' ],
          [ 'value3', 'Label 3' ]
        ]
      })
    },
    {
      name: 'verticalChoiceListView',
      defaultValue: 'value2',
      view: ChoiceListView.create({
        orientation: 'vertical',
        choices: [
          [ 'value1', 'Label 1' ],
          [ 'value2', 'Label 2' ],
          [ 'value3', 'Label 3' ]
        ]
      })
    },
    {
      name: 'radioBoxView',
      view: RadioBoxView.create({
         helpText: 'Help Text',
         choices: [
           [ 'value1', 'Label 1' ],
           [ 'value2', 'Label 2' ],
           [ 'value3', 'Label 3' ]
         ]
      })
    },
    {
      model_: 'ArrayProperty',
      name: 'arrayProperty',
      subType: 'Model'
    }
  ]
});

var allViews = AllViews.create();

allViews.write(document);

// allView.addListener(console.log.bind(console));

